參考資料:
CMAndroidBook - Coding Style
2021 iThome 鐵人賽 Day 11. Coding style
Wiki 駝峰式大小寫

駝峰式大小寫 (Camel-Case)

  • 單字間不以空格、連接號、底線連結
    • 錯誤寫法 -> my variable、my-variable、my_variable
  • 命名形式分為兩種
    1. 小駝峰式命名法(lower camel case)
      • 第一個單字以小寫字母開始,第二個單字的首字母大寫
      • Ex. myVariable
    2. 大駝峰式命名法(upper camel case)
      • 每一個單字的首字母都採用大寫字母
      • Ex. MyVariable
      • 也可以稱為Pascal命名法(Pascal Case)

整體結論

  1. Code 裡除了註解字串,其餘不得使用中文字
  2. No regionendregion
  3. MagicNumber 請一律宣告成常數變數enum
  4. 禁用無大括號單行 else -> Dangling Else
  5. Compile 後有 Warning 的程式碼就是有問題,更不用說有 Error
  6. 常數命名一律用全大寫配底限分隔 Ex. MAX_MAP_WIDTH
  7. 命名時請勿自行縮寫單字,除非該單字縮寫是通用的
  8. Class、方法須遵守 大駝峰式命名 規則
  9. 參數、區域變數須遵守 小駝峰式命名 規則
  10. 方法的第一個單字必須為動詞(Get、Push、Delete、Update…等等)
  11. 單字不能超過3個(太長的專有名詞須先建立縮寫表,統一所有人使用的縮寫)

檔案

  1. 大駝峰命名 Ex. StringParser.cpp
  2. 檔案名與類別需同名
    // StringParser.cpp
    // 正確
    class StringParser{
    }
    // 錯誤
    class OtherClass{
    }
  3. 理論上一個檔案只有一個主要類別
    // StringParser.cpp
    class StringParser{
    }
    class DoAnything{
    }

類別的命名

  1. 大駝峰命名
  2. 使用名詞形容詞 + 名詞的方式命名
    // 正確
    class NestedStructure{
    }
    //錯誤
    class GetPosition{
    }

方法的命名

  1. 小駝峰命名
  2. 使用動詞動詞 + 名詞的方式命名
    std::pair<int,int>  getPosition{
    }
  3. 方法的參數區域變數名使用小駝峰命名
    std::pair<int,int> getPosition(std::string objectName){
    }
  4. 以 Boolean 作為回傳值的命名,需使用 isXXX, canXXX, hasXXX, 或 XXXable 命名。
    bool isEmpty(){
    }

Package name 的命名

  • 全小寫

Resource 的命名

  • 全小寫
  • 以畫面使用的位置+功能 來命名
    • activity_xxx.xml
    • layout_xxx.xml
    • selector_xxx.xml

View id 的命名

  • 功能+使用元件 來命名
    • login_textView
    • reply_us_editText
    • xxx_textView
    • xxx_editText
    • xxx_button
    • xxx_linearLayout(constraintLayout,..)